<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async和await</title>
</head>
<body>
<script>
   /*
   * 1. async修饰的函数
					函数的返回值为promise对象
					Promise实例的结果由async函数执行的返回值决定
   * */

 /*let res =  async function (){
     console.log("aaa");
   }

   console.log(res())

  res().then(
       value =>{
           console.log("yes")
       },
       reason =>{
           console.log("no");
       }
   );*/

 /*
 * 2. await表达式
					await右侧的表达式一般为Promise实例对象, 但也可以是其它的值
					(1).如果表达式是Promise实例对象, await后的返回值是promise成功的值
					(2).如果表达式是其它值, 直接将此值作为await的返回值
	  3. 注意:
				await必须写在async函数中, 但async函数中可以没有await
				如果await的Promise实例对象失败了, 就会抛出异常, 需要通过try...catch来捕获处理
 -->
 * */
   (async ()=>{
       let res;
       try {
         res  = await new Promise((resolve, reject) => {
               // resolve("success")
               reject("error");
           })
       } catch (e) {
           console.log(e);
       }
       // console.log(res);


   })();

</script>

</body>
</html>